package com.collabscm.waf.exception;

/**
 * 应用异常，系统内一般异常的基类，即在没有特殊情况下，系统内所有创建的异常都是用此异常类，通过errorCode来提示异常信息。
 * @author Zeng Raoxing
 */
public class ApplicationException extends BaseRuntimeException {
	private static final long serialVersionUID = 1L;

	/**
	 * @param logMessage 记录日志的消息
	 */
	public ApplicationException(String logMessage) {
		super(logMessage);
	}
	
	/**
	 * @param logMessage 记录日志的消息
	 * @param errorCode  错误代码，此错误代码将对应一条可国际化的异常描述，此类似与Oracle等的错误代码
	 */
	public ApplicationException(String logMessage, String errorCode) {
		super(logMessage, errorCode);
	}

	/**
	 * @param logMessage  记录日志的消息
	 * @param errorCode   错误代码，此错误代码将对应一条可国际化的异常描述，此类似与Oracle等的错误代码
	 * @param messageArgs 异常描述的参数，用于错误描述中仅有一个或多个参数的情况
	 */
	public ApplicationException(String logMessage, String errorCode, Object... messageArgs) {
		super(logMessage, errorCode, messageArgs);
	}

	/**
	 * @param cause      引起异常的原始异常
	 * @param logMessage 记录日志的消息
	 */
	public ApplicationException(Throwable cause, String logMessage) {
		super(cause, logMessage);
	}

	/**
	 * @param logMessage  记录日志的消息
	 * @param cause       引起异常的原始异常
	 * @param errorCode   错误代码，此错误代码将对应一条可国际化的异常描述，此类似与Oracle等的错误代码
	 * @param messageArgs 异常描述的参数，用于错误描述中仅有一个或多个参数的情况
	 */
	public ApplicationException(Throwable cause, String logMessage, String errorCode, Object... messageArgs) {
		super(cause, logMessage, errorCode, messageArgs);
	}

}
